package main

import "fmt"

// List 表示一个可以保存任何类型的值的单链表。
type List[T any] struct {
	next *List[T]
	val  T
}

func main() {
	l := List[int]{
		next: nil,
		val:  1,
	}
	l2 := l
	l2.next = &l

	fmt.Printf("type:%T,val:%v", l, l)
	fmt.Printf("from l2 type:%T,val:%v", l2.next, l2.next)
}
